"""
利用多线程模拟多文件下载

"""
import threading #导入线程的全部函数
#从随机数模块中导入 随机整数的函数
from random import randint
from time import time,sleep


#定义下载的函数
def download(fileName):
    print("开始下载的文件：%s" % fileName)
    #利用随机数生成下载的剩余时间
    time_to_download = randint(5,10)
    print('剩余时间：%d' % time_to_download)
    sleep(time_to_download)
    print("文件：%s 下载完成" % fileName)

def main():
    #获得开始时间
    start = time()

    #创建线程                           对于线程调用函数可以在第二个参数args进行传递，传递的是一个可变参数(元组)
    thread1 = threading.Thread(target=download,args=("听泉鉴宝.pdf",))
    thread2 = threading.Thread(target=download,args=("潘宏爱狗.avi",))
    #download 是在子线程中运行

    #thread1.setDaemon(True)#开启守护线程： 主线程结束后，子线程也立即结束 了解
    #thread2.setDaemon(True)

    #启动线程
    thread1.start()
    thread2.start()

    thread1.join() #jion 线程同步：主线程任务结束后进行阻塞状态，一直等其他子线程执行结束之后，主线程再终结
    thread2.join()

    end = time()
    print("总共耗时%.3f秒" % (end-start))

if __name__ == '__main__':
    main()